//
//  MCRNBundleHelper.h
//  MeicaiStore
//
//  Created by meicai on 2017/12/20.
//  Copyright © 2017年 Beijing Yunshan Information Technology Co., Ltd. All rights reserved.

#import <Foundation/Foundation.h>

extern NSString  *  const kHotfixUpgradeSuccess;

typedef NS_ENUM(NSUInteger, UpgradeType) {
    UpgradeTypeAll = 1,
    UpgradeTypeApplication,
    UpgradeTypeHotfix,
};
/**
 * 获取jsbundle路径
 */
@interface MCRNBundleHelper : NSObject


/**
 热更新文件夹，以根目录为基础，下载的热更新文件以NSDocumentDirectory为基础，编译iOS工程打包的js文件以[NSBundle mainBundle]为基础
 */
@property (nonatomic, copy) NSString *hotfixDirectory;


/**
 热更新文件名称，默认为index.ios.jsbundle
 */
@property (nonatomic, copy) NSString *jsBundleFileName;

/**
 更新环境,例如test,stage,production
 */
@property (nonatomic, copy) NSString *environment;


/**
 单例

 @return 单例
 */
+ (instancetype)shared;

/**
 获取当前的正在使用的热更新版本号

 @return 热更新版本号
 */
- (NSInteger)currentHotfixBuildNumber;


/**
 当前的jsbundle的路径

 @return jsbundle完整路径
 */
- (NSURL *)getBundlePath;
/**
 拉取app更新信息

 @param type 更新类型
 @param token amp应用管理上的设置页面的app Token
 @param extra 一些额外字段，例如用户id、城市id，以及你想添加的一些字段
 @param completionHandler 请求回调 responseObject:请求更新返回的数据，hotfixFileURL热更新文件URL
 */
- (void)upgrade:(UpgradeType)type
       ampToken:(NSString *)token
          extra:(NSDictionary *)extra
     completion:(void(^)(id responseObject,NSURL *hotfixFileURL, NSError *error))completionHandler;
@end
